Software products and programs (generally, “software”) are being developed and published that enable network managers and administrators to coordinate information technology (IT) processes and/or automatically monitor the health of equipment in an enterprise network. Once installed, such software may generate and store data describing the actual entities in an enterprise network and the relationships between them as well as data pertaining to the operations of such entities. To develop, test and support the use of such software for a particular enterprise or enterprise type, it is important to be able to run the software against test data that reasonably represents the volume and content of data that would be generated by the software if it was installed by an actual enterprise.
One approach to obtaining such data is to obtain it from the enterprise itself after the software has been installed and used for some time. However, many enterprises may not be comfortable with this approach due to privacy concerns about how the data will be handled and also because collection of such data may require an expenditure of time and/or money by the enterprise. Even in instances where an enterprise is willing to share such data, there may be technical reasons why such data, or certain subsets of such data, cannot be obtained and/or used for testing by a software developer. Peculiarities in data obtained from specific enterprises may also render such data unsuitable for mainstream testing.
If the software has not yet been published or if an enterprise is not willing or able to share data generated by the software, then the test data cannot be obtained directly from the enterprise. In this case, some approach must be taken by the developer to generate the test data. Given the volume of data that is typically needed, manual generation is not a feasible approach. Therefore, some automated approach must be used. Although automated test data generators are capable of producing high volumes of test data, they tend to be limited in that they cannot generate rich and varied test data that fairly represents the kind of data that would be produced by the software when installed by an actual enterprise.
Another challenge associated with generating test data involves accurately modeling the test data for a certain enterprise or enterprise type, since IT infrastructures vary widely. Conventionally, the problem of classifying an enterprise is often handled in a very coarse manner by placing the enterprise in a predefined class (e.g., small, mid-market, global) and then making assumptions about each class that are to some extent arbitrary and disconnected from factual data. Another approach to classification involves requiring a representative of an enterprise to complete a detailed survey that is used to classify the enterprise along various dimensions (e.g., size, enterprise topology, use of various technologies, industry vertical, multi-national or regional, language, Internet or internal facing, rate of technology adoption, etc.). However, it is often difficult to correlate such information to parameters that are useful in generating representative test data for the enterprise. Furthermore, when answering the survey, the representative often does not know the enterprise well enough to provide accurate answers.
What is needed then is a system and method for generating a test bed that is useful in developing, testing, and/or supporting the use of software, such as software used for managing IT processes and/or monitoring equipment in an enterprise network. The system and method should preferably enable large volumes of realistic and rich test data to be generated for a particular enterprise or enterprise type in an automated fashion, wherein such test data fairly represents the kind of data that would be produced by the software when installed by the particular enterprise or enterprise type.